MAMEinfo and MAMEUI-inifiles
----------------------------


MAMEINFO.DAT

* Updated to MAME 0.289GIT - http://git.redump.net/mame/log/

* Added Source/Listinfo changes

* Newest Bugs (6th June)

* Added/Reorganized 'Recommended Games'

* Fixed Mameinfo.dat infos



0.289GIT

- New games: Planet Patrol
- New Working games: International Superstar Soccer Deluxe (SNES bootleg)
- New Non-Working games: Fuxing Gaozhao, Ganso Janken Man, Hana Awase Maihime, Hello Kitty no Oshiro e Iko, Huanzhu Gege (set 1), Itadaki Nyandora Kids, Kimme und Korn (F4), Special 8 Way (v122F), Winner's Club - Wild Roses, Xiao Mifeng, Xingyun Xiaochou / Xingyun Shouji (V233CN) and Xiyang Tianshi
- New clones: Futari Mahjong Ron II (set 2), Hana Awase 6 (Japan, bootleg), Happy Jackie (v119U), Huanzhu Gege (set 2), Mahjong Angel Kiss (ver 1.0, 92048-01 version), Mahjong Diplomat (Japan), Money Money (set 3), The New 1997 Joker Master - New York (V3G) and Play Girls 2 (Europe)
- New AGEMAME games: Castello II (W1), Disco (W1), Fifty Five (F1), Granada (W1), Logo (W1), Monopoly Tisch (F2), Multi (F2), Optimus (W1), Sunny Top (W1), Swing, Turbo Sunny (W1), Viva, Vulkan (F2), Wuerfel Fix (F2) and Wuerfel Fix (F3)
- New drivers: hkcastle.cpp
- New devices: fdc9266, scsi_tape_news, upd72065, wd37c65 and wd37c65b
- CPU
  . Hitachi H8: Formalize the contracts between H8 family peripherals and the CPU and interrupt controller so H8/500 can share. Fixed incorrect disassembly of SCB, PJSR, PJMP and TRAPA (h8500\h8500dasm.cpp).
  . Motorola MC68000: Update bftst to reluctant reads when fetching data from memory (m68000\m68k_in.lst and m68000\m68kops.cpp)
  . NEC uPD7801: Fixed uPD7801 INT0 behavior (upd7810/upd7810.cpp and upd7810\upd7810_opcodes.cpp)
  . Texas Instruments TMS34010: Attempted to fix setcd for the case with two bits set. It was definitely wrong before - the mask to clear the first bit was calculated incorrectly.
- SOUND
  . Votrax SC-01/A: Added missing library header (sound\votrax.cpp)
- DEVICE
  . DECO RM-C3 PALETTE: Changed decrmc3 not to avoid ambiguity between clock and entries. Devices must expose a public standard signature constructor. All the verbs like -listxml, -validate, -romident, etc. assume it's available via device type objects, and bad things happen if it isn't (dataeast\decrmc3.cpp).
  . DSP563xx HI08 host interface: Forward DSP HTX writes to the host. htx_w only logged the outgoing word; it did not store it in m_htx or update m_isr. Host-side reads of HRX (offsets 5/6/7) therefore always returned zero and the host never saw ISR_RXDF asserted, so any 80C535 firmware polling HSR for a reply from the DSP after the bootstrap upload would spin forever. Store the word the DSP placed on HTX into m_htx, raise ISR_RXDF (which in turn asserts host-side HRDF and clears DSP-side HTDE through hsr_r's view), and let the host's read of the trigger byte at offset 7 clear ISR_RXDF so the DSP can transmit the next word. With this in place virusb boots all the way to its interactive UI: the LCD shows the patch / parameter pages and the panel buttons drive the menu (dsp563xx/hi08.cpp).
  . Floppy: Added missing header (formats\flopimg.h). Drop debug histogram dump that segfaults on small MFI. mfi_format::load() ended with a debug block that dumped a per-track cell-length histogram to stderr, walking a hard-coded 46-track x 2-side grid. get_buffer() only bounds-checks with assert (compiled out in release builds), so on an MFI smaller than 46 tracks or single-sided the loop indexes track_array past its end and segfaults. Removed the debug dump; load() now just returns once the tracks are in (formats\mfi_dsk.cpp).
  . NB1413 Mahjong Custom: Fixed passing NB1413M3 variant as clock. This is the kind of regression that could have lurked for months and been a nightmare to track down. This is why you need to actually check your changes before committing.
  . Slot device: Removed default zero clock for some slots that provide an input clock to cards where it's common to use the input clock to drive devices on the card. It should be possible to use DERIVED_CLOCK in these cards. A default zero clock will just encourage people to be lazy and not set the bus clock. Set the bus clocks for a few systems and added FIXME comments for others.
  . Z80 SIO: Fixed Rx interrupt logic (machine\z80sio.cpp)
- adp.cpp: Changed ROM extensions for all games to match their PCB footprint position names.
- chihiro.cpp: Removed outdated workaround for missing library function (shared\xbox_nv2a.cpp)
- circus.cpp
  . Update screen per scanline for more accurate collision detection. Added sprite wraparound. Small correction to border lines.
  . Added border to Rip Cord and workaround for initial ram contents issues.
- Cv1k.cpp: Added support for cache invalidation and entry writeback (sh\sh7709s.cpp). Map the cache address array to handle cache line flushing as well as writes to CCR that cause a cache invalidatation. Fixes the SDRAM region check as only area 3 is mapped to SDRAM on cv1k. Added basic uncached access handling as the instructions that execute to invalidate/flush cache lines have to be from an uncached region. Uncached access enablement and code cleanup. Enable uncached accesses and fixup missing case for uncached penalty. Added notes about cv1k slowdown. Address some review comments, moved register timing functions to member functions and moved some #define's to private static constexpr instead. Added some TODO's that need to be fixed and some timings that need verification (sh\sh7709s.cpp).
- dangbar.cpp: Split dangbar to own state and hookup Z80 LED CPU in there.
- jankmg2.cpp: Added CTC and sound and output stubs
- namcos22.cpp: Revert "OR texture color with high bits of cz_adjust (namco\namcos22_v.cpp)" from MAME 0.288, fixes when the finish line track is visible from afar in Alpine Racer and clones, it initially appears as completely red polygons (ID 09466).
- nemesis.cpp: Added bs_ prefix to bubsys games. Mark bs_rf2 a not working. Group bubsys mcfg with the other mcfgs.
- pgm2.cpp: Added some notes and correct a couple of decryption keys (igs\igs036crypt.cpp)
- stella8085.cpp: Fixed 4040 board IO (#15382). Added 4040 board IO map. Replaced DIY IO70 with proper 8255 PPI. Replaced device tags. Removed io73.
- stv.cpp: Extend mirror ranges of registers (sega\saturn_cd_hle.cpp). Added some notes (sega\smpc.cpp).
- zaccaria.cpp: Added bruteforced PLDs to Money Money (set 3). Added placeholders for PLDs and 82s100 PROMs on every set (same PCB for both games). Load from 0x0000. Fixed note about PLD at 1a on ROM board.
- Captain Zodiac: Base video and inputs
- Flicker (prototype): Outputs still need to be resolved manually
- Hana Ren-Chan (Japan, bootleg): Some work on the game
- International Superstar Soccer Deluxe (SNES bootleg): Added DIPs and protection simulation. Promoted game to working.
- Joker Master 2000 Special Edition: Decrypted clone The New 1997 Joker Master (V1C). Needs own portmap.
- Kart Duel: Added MACHINE_NODEVICE_LAN flag. Note: Kart Duel has unemulated link support.
- La Cucaracha: Added GFX bank. Added base inputs and DIPs. Replaced video emulation with artwork based LED matrix. Added scrollx and scrolly. Fixed SFX playback at game start (missing OKI mirror). Game engine timer IRQ is more around 100 Hz, for lip sync at game start. LED colors closer approximation (layout\cucaracha.lay).
- Multi GAME XL: Hookup basic video and hookup palette bank. Fixed gfx_layout. Added NVRAM and attribute RAM view selects. Hookup most inputs.
- PinMAME: Added override qualifiers to micropin.cpp and removed declaration of non-existent method.
- Pop'n Run - The Videogame: Removed "Yukai Tsukai" from companystring (ID 09463) and useless quantum (besides, with the scanline timer it's already more than 60hz).
- Puzznic: Added PAL rom c20-05.ic3 (Confirmed/Matches Japan Set) to Puzznic (World) and clone (US)
- Ruleta Magica: Make it execute some code. Hook up UART. Basic video hookup. Map I2C EEPROM and Timekeeper.
- Description changes of Ace Driver (World, AD2), Action (F2), Bao Qing Tian (TIC), Final Lap 2 (World, Rev B), Final Lap 3 (World), Futari Mahjong Ron II (set 1), Granada (F1), Hana Awase 6 (Japan), Hana Ren-Chan (Japan, bootleg), Komet (F1), Konami RF2: Red Fighter, Konami RF2: Red Fighter (Bubble System), Mahjong Angel Kiss (ver 1.0, 92047-01 version), Mahjong Diplomat (Japan, V2), Money (F1), The New 1997 Joker Master (V1C), Pop'n Run: The Video Game (set 1), Multi GAME XL (V.11.35 A), Play Girls 2 (Japan), Pop'n Run: The Video Game (set 2), San Francisco Rush 2049 (Version 1.04, EPROM 1.02 Jul 9 1999, GUTS 1.03 Sep 3 1999, GAME Sep 8 1999), San Francisco Rush 2049: Special Edition (Version 1.00, GUTS 1.61 Sep 16 2003, GAME Sep 16 2003), San Francisco Rush 2049: Tournament Edition (VERS 0.34 Sep 26 2000, EPROM 0.56 Apr 17 2000), San Francisco Rush 2049: Tournament Edition Unlocked (VERS 0.31 Sep 26 2000, EPROM 0.56 Apr 17 2000) and Turbo Sunny (F1)
- Fixed rom names in adp.cpp, namcos2.cpp and stellafr.cpp and zaccaria.cpp
- Renamed (action) to (actionf2), (gradiusb) to (bs_gradius), (grnada) to (grnadaf1), (gwarriorb) to (bs_gwarrior), (hanaren2) to (hanaren), (jackie) to (jackiea), (plgirls2) to (plgirls2j), (rf2b) to (bs_rf2), (turbosun) to (trbsunf1), (twinbeeb) to (bs_twinbee) and (unkalba) to (hana6)
- Dipswitch fixes in cpzodiac.cpp, cucaracha.cpp, extrema_m27sv.cpp and snesb.cpp
- MAME
  . MEMORY SYSTEM: Gets rid of a layer of templating in emu\emumem_hedp.cpp and makes a few other things easier to read.
  . DEVICES
    . Added first-class concepts for a couple of things (emu\device.h)
    . Made object finders and similar things explicitly non-copyable. Copying them never behaved intuitively (emu\devfind.h).
    . There are a lot of clock information in device instanciation that gets a 0 because the information is not available or it just doesn't make sense. Allow them to be removed and push that to the constructors.
    . There are a number of cases where a weird interaction between DEFINE_DEVICE_TYPE_PRIVATE and pure methods make it impossible, see DL1416T for instance.
    . Removed default zero clock for devices that actually need the clock frequency. If you're disabling a device by setting the clock to zero, or setting it to zero with the intention of changing it later, you should be explicit about that.
  . INPUT/OUTPUT
    . Allow initialising output finders with arrays of matching dimensions. Also got rid of all but one of thee uses of get_value/set_value in emulation code and marked them deprecated. Fixed dangling reference (emu\output.h).
    . Updated API: Added a lightweight output proxy class for interacting with outputs from outside a device context. If an output doesn't exist, it stores a local value. Note that this means layouts cannot create outputs, e.g. to communicate between views. Outputs are only created by output finders when resolving objects. Made output finders participate in object resolution in the device lifecycle. They no longer need to be manually resolved. Conversely, you can't avoid creating outputs by not explicitly resolving them. Added some validation rules for output names. Got rid of the deprecated get_value/set_value. The Lua versions will stick around a bit longer to give people time to migrate. Some other internal API changes in preparation for per-device outputs. Shuffled the code for the output proxy move assignment operator to handle self-assignment properly (emu\output.cpp). Hopefully fix building with GNU libstdc++. Apparently GNU libstdc++ wants the opposite parameter order (emu\output.h).
    . Fixed dangling reference (interface\output.h)
  . LUA engine: Added Lua bindings for new public output API and added deprecation warnings to the wrappers that emulate the old API. Also updated the two affected internal layouts to use the new API (mame\luaengine.cpp).
  . Split midway project into bally and williams according to brand owner. Videa/Sente stuff from the brief period before it was acquired by Bally is still in the bally project.
  . Fixed regression with opening sockets (emu\image.cpp)
  . Merged NeoGeo project with SNK project
- SDLMAME: Fixed INI_PATH quoting (osd\sdl3_cfg.lua and osd\sdl_cfg.lua)
- Compiling
  . Marked several device_t overrides as final. There's too much opportunity for confusion if these are overridden further down the tree (emu\driver.h; dooyong.cpp, trackfld.cpp...).
  . Retired operations that are in C++20 <bit> (osd\eminline.h)
  . Updated the rarely-used ci.flt
  . Converted several things from std::enable_if to requires clauses. Replaced most uses of enable_if with requires clauses. This uses requires clauses to replace enable_if in almost all cases where it was just used to exclude functions from overload resolution. This makes the code more readable. enable_if is still used for partial specialisation. Replaced remaining uses of std::enable_if and void_t with C++20 constraints and concepts. This makes some lines considerably shorter, to the point that some of them may even fit on your screen (emu, util). Brought back an enable_if as GCC doesn't seem to be able to deal with the alternative (util\dynamicclass.h).
  . Un-templated a number of functions. Several of these could have been un-templated when we adopted C++17 (due to if constexpr) but it wasn't done at the time. Also completely dropped C++17 support since requires clauses are a C++20 feature. Fixed formatting bool values with numeric conversions (util\strformat.h).
  . Use C++20 mathematical constants rather than M_PI and similar macros
  . Core header streamlining: Retired the util::endianness enum class in favor of the std::endian type introduced in C++20. Stripped save privileges from endianness_t (now an alias for std::endian), since its specific values may be nonstandard. This type is mostly used for configuration parameters anyway. Removed the endianness and floating point utilities from emucore.h. C++20 versions of the latter now reside in their own utility header (corefloat.h).
  . Added #include <cstdio> for future-proofing (src\emu\*). Removed some empty device/machine_start (misc).
  . Put requires clauses on template parameter lists (util\delegate.h)
  . Removed default argument values from protected constructors. It's error-prone and leads to bugs. It also wasn't thought through very well. For example if a device actually tried to construct the base class in pc/pc_t1t.cpp with the default values that were added, it wouldn't do anything useful, it would just crash.
- Debugger
  . Added another example of how to use the 'ep' command (debugger\exceptionpoint.rst)

-




(c) 2026  M.A.S.H